package io.github.talelin.latticy.service.K;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import io.github.talelin.latticy.common.mybatis.Page;
import io.github.talelin.latticy.mapper.K.ViewCollectorMapper;
import io.github.talelin.latticy.model.K.ViewCollectorDO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 * VIEW 服务实现类
 * </p>
 *
 * @author generator@TaleLin
 * @since 2021-07-10
 */
@Service
public class ViewCollectorService extends ServiceImpl<ViewCollectorMapper, ViewCollectorDO> implements IService<ViewCollectorDO> {

    @Autowired
    private io.github.talelin.latticy.mapper.K.ViewCollectorMapper ViewCollectorMapper;
    
    public IPage<ViewCollectorDO> seachViewCollector(Page<ViewCollectorDO> pager, String keyword, String StartTime1, String EndTime1,String StartTime2, String EndTime2, String dwmc, String bgateway_name, String collector_name, String dwmc1,
                                                 String bgateway_name1,
                                                 String collector_name1,
                                                 String dwmc2,
                                                 String bgateway_name2,
                                                 String collector_name2,
                                                 String dwmc3,
                                                 String bgateway_name3,
                                                 String collector_name3,
                                                 String dwmc4,
                                                 String bgateway_name4,
                                                 String collector_name4,
                                                     String collector_state,
                                                     String group_id,
                                                     String collector_state1,
                                                     String group_id1,
                                                     String collector_state2,
                                                     String group_id2,
                                                     String collector_state3,
                                                     String group_id3,
                                                     String collector_state4,
                                                     String group_id4){
        QueryWrapper<ViewCollectorDO> wrapper = new QueryWrapper<>();
        if(StartTime1 != ""){
            wrapper.ge("using_date",StartTime1);
        }
        if(EndTime1 != ""){
            wrapper.le("using_date",EndTime1);
        }
        if(StartTime2 != ""){
            wrapper.ge("buy_date",StartTime2);
        }
        if(EndTime2 != ""){
            wrapper.le("buy_date",EndTime2);
        }
//        if(dwmc != ""){
//            wrapper.eq("dwmc",dwmc);
//        };
//        if(bgateway_name != ""){
//            wrapper.eq("b_gateway_name",bgateway_name);
//        };
//        if(collector_name != ""){
//            wrapper.eq("collector_name",collector_name);
//        };
//        if(dwmc1 != ""){
//            wrapper.or().eq("dwmc",dwmc1);
//        };
//        if(bgateway_name1 != ""){
//            wrapper.or().eq("b_gateway_name",bgateway_name1);
//        };
//        if(collector_name1 != ""){
//            wrapper.or().eq("collector_name",collector_name1);
//        };
//        if(dwmc2 != ""){
//            wrapper.or().eq("dwmc",dwmc2);
//        };
//        if(bgateway_name2 != ""){
//            wrapper.or().eq("b_gateway_name",bgateway_name2);
//        };
//        if(collector_name2 != ""){
//            wrapper.or().eq("collector_name",collector_name2);
//        };
//        if(dwmc3 != ""){
//            wrapper.or().eq("dwmc",dwmc3);
//        };
//        if(bgateway_name3 != ""){
//            wrapper.or().eq("b_gateway_name",bgateway_name3);
//        };
//        if(collector_name3 != ""){
//            wrapper.or().eq("collector_name",collector_name3);
//        };
//        if(dwmc4 != ""){
//            wrapper.or().eq("dwmc",dwmc4);
//        };
//        if(bgateway_name4 != ""){
//            wrapper.or().eq("b_gateway_name",bgateway_name4);
//        };
//        if(collector_name4 != ""){
//            wrapper.or().eq("collector_name",collector_name4);
//        };

//        if(collector_state != ""){
//            wrapper.eq("collector_state",collector_state);
//        };
//        if(group_id != ""){
//            wrapper.eq("group_id",group_id);
//        };
//        if(collector_state1 != ""){
//            wrapper.or().eq("collector_state",collector_state1);
//        };
//        if(group_id1 != ""){
//            wrapper.or().eq("group_id",group_id1);
//        };
//        if(collector_state2 != ""){
//            wrapper.or().eq("collector_state",collector_state2);
//        };
//        if(group_id2 != ""){
//            wrapper.or().eq("group_id",group_id2);
//        };
//        if(collector_state3 != ""){
//            wrapper.or().eq("collector_state",collector_state3);
//        };
//        if(group_id3 != ""){
//            wrapper.or().eq("group_id",group_id3);
//        };
//        if(collector_state4 != ""){
//            wrapper.or().eq("collector_state",collector_state4);
//        };
//        if(group_id4 != ""){
//            wrapper.or().eq("group_id",group_id4);
//        };
        if(dwmc != "") {
            wrapper.and(i -> i.eq("dwmc", dwmc)
                    .or().eq("dwmc", dwmc1)
                    .or().eq("dwmc", dwmc2)
                    .or().eq("dwmc", dwmc3)
                    .or().eq("dwmc", dwmc4));
        }
        if(bgateway_name != "") {
            wrapper.and(i -> i.eq("b_gateway_name", bgateway_name)
                    .or().eq("b_gateway_name", bgateway_name1)
                    .or().eq("b_gateway_name", bgateway_name2)
                    .or().eq("b_gateway_name", bgateway_name3)
                    .or().eq("b_gateway_name", bgateway_name4));
        }
        if(collector_name != "") {
            wrapper.and(i -> i.eq("collector_name", collector_name)
                    .or().eq("collector_name", collector_name1)
                    .or().eq("collector_name", collector_name2)
                    .or().eq("collector_name", collector_name3)
                    .or().eq("collector_name", collector_name4));
        }
        if(group_id != "") {
            wrapper.and(i -> i.eq("group_id", group_id)
                    .or().eq("group_id", group_id1)
                    .or().eq("group_id", group_id2)
                    .or().eq("group_id", group_id3)
                    .or().eq("group_id", group_id4));
        }
        if(collector_state != "") {
            wrapper.and(i -> i.eq("collector_state", collector_state)
                    .or().eq("collector_state", collector_state1)
                    .or().eq("collector_state", collector_state2)
                    .or().eq("collector_state", collector_state3)
                    .or().eq("collector_state", collector_state4));
        }
        wrapper.and(i -> i.like("collector_name",keyword)
                .or().like("manufacturers",keyword)
                .or().like("collector_number",keyword));
        IPage<ViewCollectorDO> iPage = ViewCollectorMapper.selectPage(pager,wrapper);
        return iPage;
    }
}
